Questions
21 of 30
1What are functions and operators in MySQL, and how are they different?
2What is the difference between single-row functions and aggregate functions?
3Give examples of commonly used string functions in MySQL.
4What is the use of the CONCAT() function? How is it different from using ||?
5Explain the difference between NOW(), CURDATE(), and SYSDATE().
6What are arithmetic operators in MySQL? Give examples.
7What is the difference between the = and <=> operators?
8What does the DISTINCT keyword do when used with aggregate functions like COUNT()?
9What is the difference between IFNULL() and COALESCE() functions?
10What are logical operators in MySQL, and how do AND, OR, and NOT work?
11What is the difference between LENGTH() and CHAR_LENGTH() functions?
12How does MySQL handle type conversion when using operators on different data types?
13What is the difference between ROUND(), TRUNCATE(), and FORMAT() functions?
14Explain how CASE and IF() functions can be used for conditional logic.
15What are comparison operators in MySQL, and how are they used with NULL values?
16How do aggregate functions like AVG(), SUM(), and MAX() behave when NULLs are present?
17Explain the use of REGEXP and LIKE operators. What’s the difference between them?
18What are user-defined functions (UDFs), and how do they differ from stored procedures?
19What are the differences between DATE_ADD() and ADDDATE() functions?
20How can you use STR_TO_DATE() and DATE_FORMAT() for converting and displaying date values?
21How does MySQL internally optimize and cache results of deterministic functions?
22What are window functions in MySQL 8.0, and how do they differ from aggregate functions?
23Explain the difference between RANK(), DENSE_RANK(), and ROW_NUMBER() window functions.
24How does MySQL evaluate operator precedence when multiple operators are used in a single expression?
25Can functions be used in the WHERE clause? What are the performance implications?
26How can you use JSON_EXTRACT() and JSON_CONTAINS() to work with JSON data in MySQL?
27What are the performance trade-offs of using scalar functions inside JOIN or GROUP BY clauses?
28Explain how collation affects comparison operators in string functions.
29What are deterministic and non-deterministic functions? How does this affect replication and indexes?
30How would you combine multiple functions and operators to clean, transform, and aggregate data efficiently in one query?
21 / 30

How does MySQL internally optimize and cache results of deterministic functions?

Internal Optimization and Caching of Deterministic Functions in MySQL

MySQL can optimize the execution of deterministic functions because their output always depends only on their input values. This allows MySQL to cache or precompute results during query optimization and execution.

1. Deterministic vs Non-Deterministic Functions
  1. 1

    A deterministic function always returns the same result for the same input.

  2. 2

    A non-deterministic function (e.g., NOW(), RAND()) may return different results on each call.

  3. 3

    MySQL can only safely cache deterministic function results.

2. Constant Folding (Optimization Phase)
  1. 1

    During query parsing, MySQL evaluates deterministic functions whose inputs are constants.

  2. 2

    It replaces them with their computed literal values (constant folding).

  3. 3

    This reduces repeated computation at runtime.

Constant Folding Example
3. Expression Caching During Query Execution
  1. 1

    MySQL may compute a deterministic function once per row or once per statement depending on the context.

  2. 2

    When the same expression appears multiple times in a query, MySQL avoids recomputing it.

  3. 3

    Cached values may be reused within the same SELECT, JOIN, or WHERE clause.

4. Stored Functions Marked DETERMINISTIC
  1. 1

    User-defined stored functions can be declared DETERMINISTIC.

  2. 2

    This allows the optimizer to apply constant folding and expression caching.

  3. 3

    Without declaring DETERMINISTIC, MySQL assumes the function might change results and avoids optimizations.

Declaring a Deterministic Stored Function
5. Limitations of Caching
  1. 1

    Caching is only valid within the scope of a query—not across multiple queries.

  2. 2

    MySQL does not maintain a global cache of function results.

  3. 3

    Non-deterministic functions are never cached because doing so would break correctness.

In summary: MySQL optimizes deterministic functions through constant folding, expression caching, and use of the DETERMINISTIC keyword in stored functions. These optimizations reduce repeated computation and improve query performance.